package cn.cjxy.web.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 请求行相关方法
 * ● String getMethod()：得到请求的方式（GET或POST等）
 * ● String getRequestURI()：得到请求的URI /demo1 只是地址的一部分，Uniform Resource Identifer 统一资源标识符
 * ● StringBuffer getRequestURL()：得到请求的URL http://localhost:8080/demo1 Uniform Resource Locator 统一资源定位符
 * ● String getProtocol()：得到请求行中的协议和版本 HTTP/1.1
 * ● String getContextPath()：得到当前项目的访问地址 /02_Request
 * ● String getRemoteAddr()：得到客户端的IP地址 127.0.0.1
 * ● String getServletPath()：得到当前Servlet的访问地址 /demo1
 * 请求头相关方法
 * String getHeader(String headName)	通过键的名字得到相应的值，返回字符串类型的值
 * Enumeration<String> getHeaderNames()	得到所有的请求头中的键名字，返回枚举类型。 枚举类型类似于迭代器，可以理解为是一个集合
 * java.util.Enumeration接口中方法	说明
 * boolean hasMoreElements()	判断枚举中是否还有下一个元素，如果有返回true
 * E nextElement()	得到某个元素，并且下移一行
 *
 *
 * @author huangjie
 * @date 2025/9/26
 */
@WebServlet("/HttpServletRequestMethods")
public class HttpServletRequest_Methods extends HttpServlet {


    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


        //设置响应编码
        resp.setContentType("text/html;charset=utf-8");
        //往网页输出信息
        String method = req.getMethod();
        String requestURI = req.getRequestURI();
        String date = req.getHeader("Connection");//----keep-alive
        //todo  其他的自己去测试
        //获取打印流对象
        resp.getWriter().print("请求方式：----"+method);

        resp.getWriter().print("请求的URI：----"+requestURI);//：----/HttpServletRequestMethods
        resp.getWriter().print("请求头：----"+date);
        System.out.println("servlet is servicing------");
    }
}
